#ifndef __BASIC_SQLIC_H__
#define __BASIC_SQLIC_H__

#include <basic/misc.h>

__BEGIN_DECLS

#define SQLI_OK						0
#define SQLI_NO_DATA_FOUND			-1
#define SQLI_CONSTRAINT			    19

/*
 * 数据库环境初始化
 */
extern int	/* 0:成功 -1:失败 */
sqlic_init();

/*
 * 数据库环境清理
 */
extern int	/* 0:成功 -1:失败 */
sqlic_clean();

struct _sqlic;
typedef struct _sqlic *SQLIC;

/*
 * 完整数据库连接
 */
extern int	/* */
sqlic_connect(
        char *dbname,           /* [IN] 数据库 */
        SQLIC *pdb              /* [OUT] 接口 */
        );

/*
 * 断开数据库连接
 */
extern int	/* */
sqlic_disconnect(
        SQLIC db                /* [IN] 接口 */
);

/*
 * 开始事务
 */
extern int	/* */
sqlic_begin(
        SQLIC db                /* [IN] 接口 */
);

/*
 * 提交事务
 */
extern int	/* */
sqlic_commit(
        SQLIC db                /* [IN] 接口 */
);

/*
 * 回滚事务
 */
extern int	/* */
sqlic_rollback(
        SQLIC db                /* [IN] 接口 */
);

/*
 * 执行非查询SQL语句
 */
extern int	/* */
sqlic_exec(
        SQLIC db,               /* [IN] 接口 */
        char *sql               /* [IN] 执行的SQL语句 */
);

/*
 * 执行查询SQL语句
 */
extern int	/* */
sqlic_query(
        SQLIC db,               /* [IN] 接口 */
        char *sql,              /* [IN] 执行的SQL语句 */
        int request_row_num,    /* [IN] 需读取的记录数 */
        DBC_RSET *rset 	        /* [OUT] 查询结果集
                                   必须由dbc_query_free释放 */
);
             
__END_DECLS

#endif
